import axios from 'axios'
import { ElMessage } from 'element-plus'

// 创建 axios 实例
const service = axios.create({
  baseURL: 'http://localhost:3000', // API 的 base_url
  timeout: 5000 // 请求超时时间
})

// 请求拦截器
service.interceptors.request.use(
  config => {
    console.log('Request:', {
      url: config.url,
      method: config.method,
      data: config.data
    })
    return config
  },
  error => {
    console.error('Request interceptor error:', error)
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    console.log('Response:', {
      url: response.config.url,
      status: response.status,
      data: response.data
    })
    return response
  },
  error => {
    console.error('Response error:', {
      url: error.config?.url,
      status: error.response?.status,
      data: error.response?.data,
      message: error.message
    })
    
    let errorMessage = '请求失败'
    if (error.response) {
      // 服务器返回错误
      errorMessage = error.response.data?.error || `${error.response.status}: ${error.message}`
    } else if (error.request) {
      // 请求发出但没有收到响应
      errorMessage = '服务器无响应'
    } else {
      // 请求配置出错
      errorMessage = error.message
    }
    
    ElMessage.error(errorMessage)
    return Promise.reject(error)
  }
)

export default service 